//赋值运算符的使用
public class AssignTest{
	public static void main(String[] args) {
		// 1.声明一个int类型的变量，并初始化
		int ia = 3;
		// 2.打印变量
		System.out.println("ia = " + ia);

		System.out.println("-----------------------------------------");
		// 3.简单赋值运算符的使用
		ia = 5;
		System.out.println("ia = " + ia);//5
		System.out.println(ia = 5);//5
		System.out.println("ia = " + ia);//5

		int ib = ia = 6;
		System.out.println("ia = " + ia);//6
		System.out.println("ib = " + ib);//6

		// 4.复合赋值运算符的使用
		ia = ia + 4;
		System.out.println("ia = " + ia);//10
		ia += 2;
		System.out.println("ia = " + ia);//12

		System.out.println("-----------------------------------------");

		byte b1 = 10;
		System.out.println("b1 = " + b1);//b1 = 10
		//考点1，下面两行代码有什么区别
		// b1 = b1 + 2;//错误: 不兼容的类型: 从int转换到byte可能会有损失. byte + int 相加还是是int类型
		// b1 = b1 + (byte)2;//错误: 不兼容的类型: 从int转换到byte可能会有损失  byte + byte 相加还是是int类型，byte类型相加很容易超过127的限制，会自动优化为两个int类型相加
		// b1 = (byte)(b1 + 2);
		b1 += 2;//真正等于b1 = (byte)(b1 + 2)
		System.out.println("b1 = " + b1);//12

		System.out.println("-----------------------------------------");
		// 考点2
		// ia == 2;//表示ia的值是否等于2
		// 2 == ia;//2是否等于ia，从结果上等价ia = 2；更能规避错误
		// ia = 2;//表示将2赋值给变量ia
		// 2 = ia;//错误写法， 错误: 意外的类型
	}
}